// 语音合成功能处理
const ttsText = document.getElementById('tts-text');
const voiceType = document.getElementById('voice-type');
const synthesizeBtn = document.getElementById('synthesize-btn');
const synthesisResults = document.getElementById('synthesis-results');

// 语音合成处理函数
async function handleSynthesis() {
    const text = ttsText.value.trim();
    const selectedVoice = voiceType.value;

    if (!text) {
        alert('请输入要转换的文本');
        return;
    }

    try {
        // 显示加载状态
        synthesizeBtn.disabled = true;
        synthesizeBtn.innerHTML = '<i class="bx bx-loader-alt bx-spin"></i> 合成中...';

        // 发送合成请求
        const response = await fetch('/synthesize_voice', {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                text: text,
                voice_type: selectedVoice
            })
        });

        if (!response.ok) {
            throw new Error('语音合成请求失败');
        }

        const result = await response.json();

        // 创建结果元素
        const resultDiv = document.createElement('div');
        resultDiv.className = 'synthesis-result';
        resultDiv.innerHTML = `
            <div class="text">${text}</div>
            <audio controls>
                <source src="${result.audio_url}" type="audio/mp3">
                您的浏览器不支持音频播放
            </audio>
        `;

        // 添加到结果区域的顶部
        synthesisResults.insertBefore(resultDiv, synthesisResults.firstChild);

        // 清空输入框
        ttsText.value = '';

    } catch (error) {
        console.error('Error:', error);
        alert('语音合成失败：' + error.message);
    } finally {
        // 恢复按钮状态
        synthesizeBtn.disabled = false;
        synthesizeBtn.innerHTML = '<i class="bx bx-volume-full"></i> 合成语音';
    }
}

// 绑定事件监听器
synthesizeBtn?.addEventListener('click', handleSynthesis);

// 支持按Enter键合成（Shift+Enter换行）
ttsText?.addEventListener('keydown', function(e) {
    if (e.key === 'Enter' && !e.shiftKey) {
        e.preventDefault();
        handleSynthesis();
    }
}); 